/**
 * 目标：基于 Web 服务，开发-省份列表数据接口
 * 步骤：
 *  1. 创建 Web 服务
 *  2. 使用 req.url 获取请求的资源路径，读取 json 文件数据返回
 *  3. 其他请求的路径，暂时返回不存在的提示
 *  4. 运行 Web 服务，用浏览器请求地址查看效果
 */

const http = require('http')
const fs = require('fs')
const path = require('path')
const qs = require('querystring')
// 创建服务
const server = http.createServer()
// 检查请求状态
server.on('request', (req, res) => {
  console.log(req.url)
  res.setHeader('content-type', 'application/json;charset=utf-8')
  // 读取文件
  const data = fs.readFileSync(path.join(__dirname, './data/province.json'))
  // 返回省份数据
  if (req.url === '/api/province') {
    res.end(data.toString())
  }
  else if (req.url.startsWith('/api/city')) {
    res.setHeader('content-type', 'application/json;charset=utf-8')
    const queryStr = req.url.split('?')[1]
    const queryObj = qs.parse(queryStr)
    // 读取城市文件
    const data = fs.readFileSync(path.join(__dirname, './data/city.json'))
    const cityObj = JSON.parse(data.toString())
    const resStr = JSON.stringify(cityObj[queryObj.pname])
    res.end(resStr)
  }
  else {
    res.setHeader('content-type', 'text/html;charset=utf-8')
    res.end('<h1>请求路径不存在<h1>')
  }
})

server.listen(3000, () => {
  console.log('服务启动成功')
  console.log('http://localhost:3000/api/province')
  console.log('http://localhost:3000/api/city?pname=河南省')
})

